Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Programma che copia file
Forum - C# / VB.NET - [VB.NET] Programma che copia file

Avatar
Hast (Normal User)
Rookie


Messaggi: 52
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 22:47
Giovedì, 09/04/2009
Salve a tutti mi presento. Mi chiamo Simone e spero di imparare molto in questo fantastico sito.

Ma ora passo a descrivervi il problema. Premetto che ho iniziato da poco a programmare in vb.

Dunque, avevo intenzione di creare un programma che caricasse su una listview dei files (scelti con l'openDialogFile) per poi selezionarli e copiarli da un'altra parte.

Questo è il sorgente che ho fatto:
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
  4.  
  5.  
  6.     End Sub
  7.  
  8.  
  9.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.         OpenFileDialog1.Filter = "Musica|*.mp3;|*.wav;|*.wma"
  11.         OpenFileDialog1.Multiselect = False
  12.         OpenFileDialog1.Title = "Apri"
  13.         If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
  14.  
  15.             Dim item As New ListViewItem(OpenFileDialog1.FileNames)
  16.             ListView1.Items.Add(item)
  17.         End If
  18.  
  19.     End Sub
  20.  
  21.  
  22.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  23.  
  24.         For Each SelItem As ListViewItem In ListView1.SelectedItems
  25.             ListView1.Items.Remove(SelItem)
  26.         Next
  27.  
  28.     End Sub
  29.  
  30.  
  31.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  32.  
  33.         Dim DaSpostare
  34.         DaSpostare = ListView1.SelectedItems
  35.  
  36.         FileCopy(DaSpostare, "C:\Users\Simo\Desktop\New Folder (3)")
  37.    
  38.     End Sub
  39. End Class



Il problema mi viene all'ultima riga di codice (FileCopy(DaSpostare, "C:\Users\Simo\Desktop\New Folder (3)")) perchè quando seleziono un file mi da questo errore:
[IMG]http://i41.tinypic.com/2hgwhoo.jpg[/IMG]

Sapete aiutarmi?
Grazie a tutti

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:43
Venerdì, 10/04/2009
Chissà perchè gli errori di conversione danno tanti problemi... Nel tuo codice ci sono tre errori:
1. SelectedItems non è una stringa: tu lo stai trattando come una stringa. SelectedItems è una collezione di ListViewItem. Per ottenere il testo di un ListViewItem, basta richiamarne la proprietà Text.
2. La funzione FileCopy accetta due parametri stringa. Il primo è il percorso del file (del file, non DEI file) da copiare. Il secondo è il percorso del file copiato, e non il percorso della cartella di destinazione.
3. Questa è un'imprecisione: FileCopy è una funzione di vb6.
Se vuoi copiare tutti i file in una nuova cartella devi fare così:
Codice sorgente - presumibilmente VB.NET

  1. Dim NewFolder As String = "C:\Nuova cartella\"
  2.  
  3. For Each L As ListViewItem in ListView.Items
  4.   IO.File.Copy(L.Text, NewFolder & IO.Path.GetFileName(L.Text))
  5. Next


Uso L.Text assumendo che la listview abbia una sola colonna e che in questa sia posto il nome del file.

PM Quote